﻿using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;

namespace 示例中体现的ModelBus核心思想.Models.Data
{
    /// <summary>
    /// 数据模型：与数据库表直接映射
    /// 包含存储相关属性（如数据库字段约束）
    /// </summary>
    [Index(nameof(Sku), IsUnique = true)] // 数据库索引定义（存储细节）
    public class ProductData
    {
        // 数据模型主键（存储层标识）
        public Guid Id { get; set; }

        // 商品名称（映射领域模型的Name）
        [MaxLength(100)] // 数据库字段长度约束
        public string Name { get; set; }

        // 商品价格（映射领域模型的Price）
        [Precision(18, 2)] // 数据库精度定义
        public decimal Price { get; set; }

        // 状态编码（存储层用整数存储，映射领域模型的Status）
        public int StatusCode { get; set; }

        // 库存单位（仅数据层需要的属性，领域模型不关心）
        public string Sku { get; set; }

        // 数据库审计字段（仅数据层需要）
        public DateTime CreatedAt { get; set; }
    }
}
